- Zero-Code Efficient Printing: Multi-Dimensional Table-Based Label Automation Solution
- PrintSpirit Table Operation Tips (Part 1)
- PrintSpirit Table Operation Tips (Part 2): Report Printing
- Integrating LabVIEW with PrintSpirit for Barcode Printing | Technical Solution
- Barcode Label Printing Solution for Production Enterprises in Intranet Environment
- Embed "PrintSpirit" into Third-Party Websites for Quick Label Printing
- How to Quickly Implement Label Printing Functionality in Information Systems
- "Print Genie: JavaScript Scripts Help You Design Complex and Flexible Labels"
- "PrintSpirit" Print Service Fails to Start Automatically Solution
- Developing Label Printing Function for Information Systems at Minimal Cost with PrintSpirit Custom Edition
- Several Methods to Implement WEB Printing
- Introduction to Portable Mobile Printing Protocol CPCL
- In-depth Understanding of Zebra Printers and ZPL Language: A Beginner's Guide
打印精灵和 Codesoft 的可变数据打印操作方法比较
部分客户此前使用 Codesoft 软件。由于打印精灵的系统操作逻辑与 Codesoft 存在较大差异,初次使用时容易出现不熟悉、不知从何操作的情况。为帮助原 Codesoft 用户尽快迁移到打印精灵,现将两者的主要差异总结如下。
一、变量创建
打印精灵无需显式创建变量即可使用。
打印精灵和 Codesoft 都通过变量实现可变数据打印,但使用方式不同:
- Codesoft:使用变量前必须先创建变量。
- 打印精灵:只需在使用时,在输入框右侧输入变量名和示例值,点击“插入变量”即可自动创建一个变量,无需显式创建。
二、多变量使用
打印精灵支持在一个对象中同时插入多个变量。
- Codesoft:文本、多行文本、条码、二维码只能绑定一个变量或一个常量。如需绑定多个变量,必须先用公式将变量组合成一个新变量。
- 打印精灵:可以同时插入多个变量以及任意其他字符。因此在很多场景下,使用打印精灵可以无需编写公式(JS 脚本),操作更为简单。
三、公式与 JS 脚本
复杂的内容格式化,Codesoft 使用公式,打印精灵使用 JS 脚本。
总体而言,Codesoft 公式能实现的功能,JS 脚本均能实现,且在功能和灵活性方面更强。唯一的缺点是对非 IT 人员而言,需要一定的适应过程。
为便于转换,下面按常见使用场景列出对照表。
| 对比项 | Codesoft | 打印精灵 |
|---|---|---|
| 使用方法 | 一个公式是一个表达式,计算一个值。 | 可以有任意条语句,可以计算多个中间值。但是最终值必须通过 return 返回。 |
| 获取变量值 | 直接使用变量名,如 PRD_ID |
使用 get("变量名")。获取的值可以赋给一个中间变量,后续使用中间变量参与运算,如 PRD_ID=get("PRD_ID");也可以直接用 return 返回:return get("PRD_ID")。由于 get() 是一个函数,可以用于任何可以使用函数的地方。 |
| 特殊符号 | Char(13) 回车 |
"\n" 回车 |
| 连接字符 | 通过 & 连接变量或常量如: "产品编号:"&PRD_ID & char(13) & PRD_NAME |
方案1:使用 + 号拼接return "产品编号"+get("PRD_ID" ) + "\n"+get("PRD_NAME")方案2:使用模板字符串 return `产品编号${get("PRD_ID")}\n${get("PRD_NAME")}` |
| 条件计算 | IF(条件,真值,假值)IF( WEIGHT>1000, "超重", "") |
条件?真值:假值get("WEIGHT")>1000? "超重":"" |
四、迁移示例
以下通过一个实际场景,演示如何将 Codesoft 公式转换为打印精灵的 JS 脚本。
需求:输出三行内容,第一行为“产品编号:”加编号,第二行为“产品名称:”加名称,第三行为根据重量判断是否显示“超重”提示。
Codesoft 公式:
"产品编号:" & PRD_ID & Char(13) &
"产品名称:" & PRD_NAME & Char(13) &
IF(WEIGHT > 1000, "超重", "")
打印精灵 JS 脚本1 - 单语句模板(简单):
1return `产品编号:${get("PRD_ID")}
2产品名称:${get("PRD_NAME")}
3${get("WEIGHT") > 1000 ? "超重" : ""}`
打印精灵 JS 脚本2 - 多语句模板(更清晰):
1// 获取变量值
2var prdId = get("PRD_ID");
3var prdName = get("PRD_NAME");
4var weight = get("WEIGHT");
5
6// 计算重量提示
7var weightTip = weight > 1000 ? "超重" : "";
8
9// 拼接并返回最终结果
10return `产品编号:${prdId}\n产品名称:${prdName}\n${weightTip}`;
对比说明:
| 环节 | Codesoft | 打印精灵 |
|---|---|---|
| 变量获取 | 直接使用变量名 | 通过 get() 函数获取 |
| 换行 | Char(13) |
\n |
| 字符串拼接 | & 连接 |
+ 或模板字符串 |
| 条件判断 | IF(条件,真值,假值) |
条件?真值:假值 |
| 多步计算 | 单个表达式,难以拆分中间结果 | 可定义多个中间变量,逻辑更清晰 |
通过这个示例可以看出,打印精灵的 JS 脚本, 可以使用单语句模板结构上更接近codesoft; 也可使用多语句,在结构上更接近常规编程,便于拆分中间步骤、添加注释,也更适合处理复杂格式化逻辑。